
#ifndef __BODY_H
#define __BODY_H

#include <iostream>

#include "object.h"
#include "force.h"
class Vector4;
class Matrix44;

class Body : public Object
{
// Member Functions
public:
	Body(void);
	
	virtual void update(float etime) = 0;
	virtual void draw(Vector4 *camPos, Vector4 *camRot) = 0;
	
	virtual Vector4 **getFaceVerts() = 0;
	
	void transformXYZHRPS(float x, float y, float z, float h, float p, float r, float s);
	void rotHPR(float h, float p, float r);
	void applyForce(Force forceApplied);
	Vector4 getTorque(Force forceApplied);
	void updateMatrix(void);
protected:
private:

// Member Variables
public:
	Vector4 aVel;
	Vector4 aAcc;
	Vector4 impulse;
	Vector4 ori;

	float mass;
	

	Matrix44 MOI;
	Matrix44 MOIinv;

protected:
private:
};

#endif //__BODY_H
